#include <iostream>
#include <list>

template<typename T>
void Print(const T &d)
{
    //遍历:迭代器的遍历容器的方式
    //前向迭代器
    for(auto ite = d.begin(); ite != d.end(); ite++)
    {
        std::cout<<*ite<<" ";
    }
    std::cout<<std::endl;
}

int main()
{
    std::list<int> l;
    l.push_back(1);
    l.push_front(4);
    l.push_back(3);
    l.push_front(2);

    l.insert(l.begin(),99);
    Print<std::list<int>>(l);
    l.erase(l.begin());
    std::cout<<"size:"<<l.size()<<std::endl;
    l.remove(2);

    // auto ite = l.end();
    // ite = ite--;
    // std::cout<<"--"<<*ite<<std::endl;

    l.sort();
    //逆序
    l.reverse();
    Print<std::list<int>>(l);
    
    return 0;
}